GDK X11 DND: Fix infinite loop
authorEdward Sheldrake <ejsheldrake@gmail.com>
Mon, 14 May 2012 12:06:43 +0000 (13:06 +0100)
committerMatthias Clasen <mclasen@redhat.com>
Tue, 15 May 2012 03:02:23 +0000 (23:02 -0400)
Related: https://bugzilla.gnome.org/show_bug.cgi?id=664646

gdk/x11/gdkdnd-x11.c

index 3b6765e4d9f58e8cca255b1567e10d499a381f9f..6491f78388350cebc7dcfd055ef96156a0c6e1f6 100644 (file)
@@ -240,12 +240,12 @@ gdk_drag_context_find (GdkDisplay *display,
                        Window      source_xid,
                        Window      dest_xid)
 {
-  GList *tmp_list = contexts;
+  GList *tmp_list;
   GdkDragContext *context;
   GdkX11DragContext *context_x11;
   Window context_dest_xid;
 
-  while (tmp_list)
+  for (tmp_list = contexts; tmp_list; tmp_list = tmp_list->next)
     {
       context = (GdkDragContext *)tmp_list->data;
       context_x11 = (GdkX11DragContext *)context;
@@ -265,8 +265,6 @@ gdk_drag_context_find (GdkDisplay *display,
             (GDK_WINDOW_XID (context->source_window) == source_xid))) &&
           ((dest_xid == None) || (context_dest_xid == dest_xid)))
         return context;
-
-      tmp_list = tmp_list->next;
     }
 
   return NULL;